// Virtual Machine : vm.h
// 5.5.08

#include "lexer.h"

void vm_make(FILE *in, FILE *err, struct vm_State *vm);

void vm_execute(FILE *in, FILE *out, FILE *err, struct vm_State *vm);

void vm_delete(struct vm_State *vm);

void vm_error(FILE *err, int ln, struct vm_State *vm);

struct node *pos_update(struct node *pos, int lp);

void move (int a, float f, struct vm_State *vm);

void add (int a, int b, struct vm_State *vm);

void sub (int a, int b, struct vm_State *vm);

void mult (int a, int b, struct vm_State *vm);

void divd (int a, int b, struct vm_State *vm);

void swap (int a, int b, struct vm_State *vm);

void copy (int a, int b, struct vm_State *vm);

void clr (int a, struct vm_State *vm);

void dispr (FILE *out, int a, struct vm_State *vm);

void get (FILE *in, int a, struct vm_State *vm);

int comp (int a, int b, struct vm_State *vm);
